home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / swag / mouse.swg / 0020_Mouse Detection.pas < prev    next >
Pascal/Delphi Source File  |  1994-05-26  |  2KB  |  91 lines

  1. {
  2. (The Procedure Mouse_Check can be done shorter, but this one "remembers" a
  3. mouseclick, so you can click the mouse, and at a later time call this
  4. procedure and it will tell you the mouse-information!)
  5.  
  6. >-----------------------------            }
  7.  
  8. PROGRAM Mouse_on_the_screen;
  9.  
  10. USES DOS,Graph;
  11.  
  12. TYPE
  13.      MouseType = RECORD
  14.                    x, y, Button     : Word;
  15.                    RButton, LButton : Boolean;
  16.                  END;
  17. VAR
  18.      Reg                              : Registers;
  19.      Mouse                            : Mousetype;
  20.  
  21. PROCEDURE Show_Mouse;
  22. BEGIN
  23.   Reg.AX := 1;
  24.   Intr($33,Reg);
  25. END;
  26.  
  27. PROCEDURE Hide_Mouse;
  28. BEGIN
  29.   Reg.AX := 2;
  30.   Intr($33,Reg);
  31. END;
  32.  
  33. PROCEDURE SetMouseArea(XMin,YMin,XMax,YMax :Word);
  34. BEGIN
  35.   Reg.AX := 7;
  36.   Reg.CX := XMin;
  37.   Reg.DX := XMax;
  38.   Intr($33,Reg);
  39.   Reg.AX := 8;
  40.   Reg.CX := YMin;
  41.   Reg.DX := YMax;
  42.   Intr($33,Reg);
  43. END;
  44.  
  45. PROCEDURE Init_Mouse;
  46. BEGIN
  47.   Reg.AX := 0;
  48.   Intr($33,Reg);
  49.   SetMouseArea(0,0,GetMaxX,GetMaxY);
  50.   Reg.AX := 4;
  51.   Reg.CX := 100;
  52.   Reg.DX := 100;
  53.   Intr($33,Reg);
  54. END;
  55.  
  56. PROCEDURE Mouse_Check;
  57. BEGIN
  58.   Reg.AX := 5;
  59.   Reg.BX := 1;
  60.   Intr($33,Reg);
  61.   Mouse.RButton := Reg.BX > 0;
  62.   Mouse.Button := Reg.AX;
  63.   IF Mouse.RButton THEN Mouse.Button := 2;
  64.   Mouse.X := Reg.CX;
  65.   Mouse.Y := Reg.DX;
  66.  
  67.   IF NOT Mouse.RButton
  68.     THEN Begin
  69.            Reg.AX := 5;
  70.            Reg.BX := 0;
  71.            Intr($33,Reg);
  72.            Mouse.LButton := Reg.BX > 0;
  73.            Mouse.Button := Reg.AX;
  74.            IF Mouse.LButton THEN Mouse.Button := 1;
  75.            Mouse.X := Reg.CX;
  76.            Mouse.Y := Reg.DX;
  77.          End;
  78. END;
  79.  
  80. BEGIN
  81.   {Init graphics screen here!}
  82.  
  83.   Init_Mouse;
  84.   Show_Mouse;
  85.   .                     {You have to finish this part yourself}
  86.   .                     { ___     }
  87.   .                     { |-lorian}
  88.   Hide_Mouse;
  89.  {CloseGraph};
  90. END.
  91.